// import axios from 'axios'

var initFn = (function(){
    var f = function (){}
    console.log(f.name);

    let obj = {a: 2};
    console.log(Object.getOwnPropertyDescriptor(obj, 'a'));
    // 属性描述：getOwnPropertyDescriptor
    // configurable（可配置的）
    // enumerable（可枚举的）
    // writable（可写）
    // value（值）

    // defineProperty 修改一个已有的属性，添加一个新的属性
    Object.defineProperty(obj, 'b', {
        value: 3,
        writable: true,
        enumerable: true,
        configurable: true
    })
    console.log(obj);
});

var initNotJianTou = (function(){
    // getter setter
    var obj = {
        log: ['example', 'test'],
        get latest(){
            if(this.log.length === 0) {
                return undefined;
            }
            return this.log[this.log.length - 1];
        }
    }
    console.log(obj.latest);

    let myObj = {
        get a(){
            return 2;
        }
    }

    Object.defineProperty(myObj, 'b', {
        get: function(){
            return this.a * 2;
        },
        enumerable: true
    })

    console.log(myObj);
});
var initParam = function(){
    initFn();
    initNotJianTou();
}

initParam();